Routing messages by message parameter

ABSTRACT

A machine includes a processor and a memory coupled to the processor. The memory stores instructions executed by the processor to perform operations comprising receiving, from a plurality of computing devices, a plurality of messages, each message comprising at least one message parameter. For each message of the plurality of messages, the machine determines whether the at least one message parameter comprises speed indicia indicating a speed of a respective computing device. Based on determining that the at least one message parameter comprises speed indicia, the speed indicia is evaluated to determine whether a speed of the respective computing device corresponds to a first media collection. The message is added to the first media collection based on determining that the speed of the respective computing device corresponds to the first media collection.

REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority of U.S. patent application Ser. No. 16/376,598, filed on Apr. 5, 2019, which is a continuation of and claims the benefit of priority of U.S. patent application Ser. No. 14/967,472, filed on Dec. 14, 2015, which is a continuation of and claims priority of U.S. patent application Ser. No. 14/578,271, filed on Dec. 19, 2014, which are hereby incorporated by reference in their entirety.

FIELD OF THE INVENTION

This invention relates generally to exchanging electronic messages in a computer network. More particularly, this invention relates to a gallery of videos set to an audio time line.

BACKGROUND OF THE INVENTION

Mobile devices, such as smartphones, are used to generate messages. The messages may be text messages, photographs (with or without augmenting text) and videos. Users can share such messages with individuals in their social network. However, there is no mechanism for automatically routing a message with content related to a shared interest to a gallery of messages.

SUMMARY OF THE INVENTION

A machine includes a processor and a memory connected to the processor. The memory stores instructions executed by the processor to receive a message with audio content and video content. Audio fingerprints within the audio content are evaluated. The audio fingerprints are matched to known audio fingerprints to establish matched audio fingerprints. A determination is made whether the matched audio fingerprints correspond to a designated gallery constructed to receive a sequence of videos set to an audio time line. The matched audio fingerprints and corresponding video content are added to the audio time line. The operations are repeated until the audio time line is populated with corresponding video content to form a completed gallery with video segments set to audio segments that constitute a complete audio time line. The completed gallery is supplied in response to a request.

BRIEF DESCRIPTION OF THE FIGURES

The invention is more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:

FIG. 1 illustrates a system configured in accordance with an embodiment of the invention.

FIGS. 2 illustrates a registration process utilized in accordance with an embodiment of the invention.

FIG. 3 illustrates a gallery collection with enrollment prompts utilized in accordance with an embodiment of the invention.

FIG. 4 illustrates a message generation interface utilized in accordance with an embodiment of the invention.

FIG. 5 illustrates server side processing performed in accordance with an embodiment of the invention.

FIG. 6 illustrates server side processing associated with another embodiment of the invention.

Like reference numerals refer to corresponding parts throughout the several views of the drawings.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 illustrates a system 100 configured in accordance with an embodiment of the invention. The system 100 includes a set of client devices 102_1 through 102_N and at least one server 104 connected via a network 106. The network 106 may be any combination of wired or wireless networks.

Each client device 102 has standard components, such as a central processing unit 110 and input/output devices 112 connected via a bus 114. The input/output devices 112 may include a touch display, dedicated control buttons, physical connectors, speakers and the like. A network interface circuit 116 is also connected to the bus 114 and provides connectivity to network 106. A memory 120 is also connected to the bus 114. The memory 120 stores a communication application 122. The communication application 122 includes instructions executed by CPU 110 to coordinate communications with server 104 and/or other client devices. In particular, the communication application 122 is operative with server 104 to exchange messages between client devices. The client device may be in the form of a tablet, smartphone, wearable technology, laptop computer or desktop computer.

The server 104 also includes standard components, such as a central processing unit 130, a bus 132, input/output devices 134 and a network interface circuit 136. A memory 140 is connected to the bus 132. The memory 140 stores a communication module 142. The communication module 142 includes instructions executed by the CPU 130 to coordinate communications with client devices 102. More particularly, the communication module 142 coordinates the exchange of messages between client devices 102. The memory 140 also stores a gallery module 144. The gallery module 144 includes instructions executed by the CPU 130 to store messages from individuals with a shared interest or some other association. Examples of types of associations contemplated by embodiments of the invention include photos or videos taken by users that include the same or similar object(s), such as guitar from a particular manufacturer, a designer handbag, a soft drink or beer can, etc. The messages form a gallery, which may be supplied to a client device 102 in response to a request from a client device 102. The gallery may be a sequence of photographs and/or videos. Any of a text message, user drawings/annotations, animations, photo filters may be associated with a photograph or video (e.g., as an overlay). In one embodiment, the gallery is available for a specified transitory period of time (e.g., a day, during an event, etc.).

FIG. 2 illustrates a process for registering users with common interests that desire to participate in posting to a gallery. This process may be implemented by the gallery module 144. The gallery module 144 waits for a request for a gallery collection 200 from a client device 102. In the event of a request (200—Yes), a gallery collection and enrollment prompts 202 are sent from the server 104 to a client device 102.

Embodiments contemplate that a request could include an express request sent by a user. For example, a user may request to participate in a gallery by navigating to a ‘request’ screen from a user interface on the device display. In these examples, the user may select from any number of existing galleries or create a new gallery by keying in or otherwise describing the gallery. Another example of an express request to participate in a gallery may include an action on the part of the user from an annotation feature offered from an image. For instance, after a picture or image has been taken, some embodiments allow a user to add text, graphics, images, etc. to the picture/video. During this annotation process, the input and detection of a particular key or swipe may be used to indicate an intent to add that picture/video to a particular gallery. As an example, the use of a hashtag (“#”) or swipe added to the text “Clippers” may be used to submit the picture/video to a Clippers gallery.

In addition to express user requests to submit content to a gallery, passive requests are also contemplated. For example, the detection of a particular object in a picture or video (detected using, e.g., object recognition processes to detect an object or audio fingerprinting technologies to detect a song, etc.) could be used to prompt a user to join a gallery associated with the object or even automatically post to an existing gallery (e.g., with the user's consent). For example, if a user takes a picture or video of a Coca Cola bottle, upon detection of the bottle, the user may be asked if he or she wishes to participate in a Coca Cola gallery. Alternatively, the user may be asked if he or she wishes to post directly to a gallery without joining. In yet other embodiments, the user's video or picture may be posted directly to the gallery (perhaps after receiving a blanket authorization at some point earlier).

In additional embodiments, a revenue sharing process may be implemented to facilitate payments to the user for use of his or her image. For example, a user image may be added to a gallery sponsored by Coca Cola and in return for contributing to Coca Cola's gallery, a user may receive compensation on a flat-fee, per view or revenue share basis.

FIG. 3 illustrates an example of a gallery collection 300 displayed on a client device 102. The gallery collection 300 may be supplied by activating an icon (such as icon 402 of FIG. 4). Alternately, the gallery may be supplied in accordance with the examples provided above. The gallery collection 300 includes individually listed galleries, such as 302 and an associated prompt 304. In this example, the prompt 304 is a radio button, selection of which results in a selected gallery. Hovering over or tapping the text description 302 of the gallery may result in the display of additional information about the gallery. In the case of “Clippers' Games” a gallery is formed during the course of each basketball game played by the Clippers. Thus, the gallery is a recurring gallery. Messages associated with the Clippers are posted during the course of each basketball game. Thus, a collection of messages is available for the transitory duration of each basketball game. Of course, other examples are also possible including availability for a set amount of time after the event (e.g., twenty-four hours, one week, etc.).

The next example in the gallery collection 300 is a concert. This is a single event gallery that lasts for a set amount of time after the duration of the event. The next example in the gallery collection 300 is for a shared interest in an object, such as roses. This may be an ongoing gallery that is used by registrants to post photographs or videos of roses.

The next example in the gallery collection 300 is for the band Guns N′ Roses. This gallery is constructed to receive messages from individuals with a shared interest in the band. In one embodiment, individual songs from the band may be selected. Thereafter, messages that reference or incorporate the individual songs may be posted to the gallery.

The collection may also include a theme such as midnight. Messages generated on or around midnight are posted to the gallery. The messages may be identified by a timestamp associated with the message.

The collection may also include a theme such as “on the run”. This gallery is constructed to receive messages from client devices that are in motion (as measured by an accelerometer, gyroscope, GPS signal and the like associated with the client device). Messages from such devices are posted to the gallery.

The collection may also include a theme such as “I like it hot . . . ” to post messages when the temperature in a geolocation associated with a message exceeds some threshold (e.g., 90° F.). The geolocation may be where the message is generated. The temperature may be obtained for the specified geolocation by any number of online weather information resources or from a thermometer device built into the device.

A final option shown in FIG. 3 is a request to create a new gallery. Activating the associated radio button 304 may result in a set of prompts that allows a user to define a new gallery. The definition may include a gallery name, keywords associated with the gallery, objects associated with the gallery, and the like.

Returning to FIG. 2, the gallery module 144 receives enrollment or participation requests 204. In response to such requests, a user is registered with one or more selected galleries. Thus, a user registers with one or more selected galleries 206. Thereafter, any message relevant to a selected gallery is automatically routed to the selected gallery. This may be accomplished without the user separately designating the gallery as a destination for the message. A single message may be automatically routed to several galleries if the message has indicia relevant to each of the several galleries.

FIG. 4 illustrates a client device 102 that has taken a picture of a rose 400. The communication application 122 and/or gallery module 144 may be configured with instructions executed by the processor to recognize the rose (e.g., machine vision may be used to designate the object as a rose). If the user is registered with the rose gallery, the message is automatically routed to the rose gallery. An icon 402 may be supplied to annotate a message. Activation of the icon 402 may result in a text entry box 404 being supplied, along with a keyboard. The user may designate that the message includes a rose or may type in any other type of message. A message recipient list may be invoked through the icon 402 or through a swiping motion. The message recipient list is an existing list of contacts for the user. Each contact selected will receive a copy of the message via routing through the communication module 142. Thus, for this message there are intentionally designated message recipients. However, depending upon the number of galleries that a user is registered with, the message may be automatically forwarded to relevant galleries without the user designating such galleries for the message.

FIG. 5 illustrates operations associated with an embodiment of the gallery module 144. The top of the figure illustrates a set of message senders, i.e., Sender_1 through Sender_N. Each message sender is associated with a client device 102.

The server 104 receives messages 500 from any number of senders. Each message is evaluated to determine whether message parameters correspond to selected galleries 502. For example, if the user has registered for the roses gallery and generates the message shown in FIG. 4, then the message corresponds to a selected gallery (502—Yes). Any number of message parameters may be used. For example, in the case of the rose picture in FIG. 4, the rose may be a designated object from machine vision operations performed by the gallery module. Alternately, or in addition, text associated with the message may be a parameter that is evaluated for relevance to a selected gallery. For example, optical character recognition or word matching techniques may be used to link a message with a gallery. Each gallery may have an associated collection of key words and/or designated objects that are used to determine correspondence between a message and a gallery. Other message parameters may include a time stamp (relevant to the midnight gallery), speed indicia (relevant to the “on the run” gallery) and temperature (relevant to the “I like it hot . . . ” gallery).

If the message does not have a parameter relevant to a selected gallery (502—No), then processing by the gallery module 144 is completed. The message is then routed in a standard manner by the communication module 142. If the message does have a parameter corresponding to a selected gallery (502—Yes), the message is posted to one or more galleries 504.

The gallery module 144 may include a curation interface that allows a gallery administrator to optionally curate the gallery 506. For example, the curation interface may allow the administrator to delete inappropriate or redundant messages. Alternately, machine vision and content rules may be used to automatically curate the gallery. In embodiments that include compensation to be paid to a user, the curation interface may be configured to make automatic payments to the users for the use of their pictures or videos. The final operation of FIG. 5 is to supply the gallery in response to requests 508 from any number of users.

Embodiments of the invention utilize galleries with specified transitory periods of time (e.g., a day, or during an event). Each gallery may include individual messages shown in sequence, where the individual messages are photographs or videos. Text may accompany a photograph or video, as shown in connection with FIG. 4.

An embodiment of the invention has a gallery with content set to an audio time line. In some embodiments, the audio time line could be a song or a video clip. As discussed in connection with FIG. 3, a band may have a designated gallery with a selectable song. If a user registers with a song then a message that incorporates the song may be posted to the gallery. Embodiments of the invention utilize short (e.g., 3-6 seconds) video messages. Therefore, a collection of messages can be constructed for different segments of the audio time line associated with a song. As a result, a single song may have an associated mash-up of video segments. Observe here that the audio time line determines the video content. Typically, video content is used to establish a sequence of videos. The use of the audio time line as a guiding factor results in interesting and artistic combinations of videos.

Instead of a song, the audio time line may be a narrative, such as a speech or a dialogue. For example, a “Gettysburg Address” gallery may be formed with a voice over of the famous speech by Abraham Lincoln. Video segments that include words from the speech may be combined to populate a complete audio time line for the speech. Consequently, a voice over of the speech may have an associated mash-up of video segments.

There are known techniques for evaluating audio content. In particular, there are online services, such as Shazam® and Soundhound®, which provide real-time identification of songs and other audio tracks. The gallery module 144 may be configured to access such online services and/or incorporate its own audio fingerprint identification techniques. The object recognition and fingerprinting operations disclosed herein may be performed on any of client device 102, server 104 or a third-party device (not shown).

As described above, embodiments contemplate that a user could be compensated by e.g., the audio time line owner or rights holder for helping to create and promote a particular song or content. Thus, a user that contributes to an audio time line could be compensated by some amount for each viewing of the time line.

FIG. 6 illustrates audio time line processing performed in accordance with an embodiment of the invention. The gallery module 144 receives messages 600 from any number of message senders (Sender_1 through Sender_N). Each message is evaluated for audio fingerprints 602. If there are no matches to known audio fingerprints (604—No), then the gallery module 144 processing is completed and the message is routed in a standard manner using communication module 142.

If matches with known audio fingerprints are established (604—Yes), a determination is made whether there is a selected gallery with the same audio fingerprint. That is, has the message sender registered with a gallery with the same audio fingerprint. If not (606—No), processing is complete. If so (606—Yes), the audio segment and corresponding video content are added to the audio time line 608. For example, the video message may have audio fingerprints for seconds 58 through 66 of a video time line. The video message is then positioned at that location on the video time line.

It is then determined whether the audio time line is complete 610. If not (610—No), the processing of the message is completed and the process may wait for the submission of additional segments for possible inclusion into the audio time line. If so (610—Yes), a gallery is formed with video segments set to audio segments 612. The audio segments may be a master track of a song or narrative. Alternately, the audio segments from the videos themselves may be used. Different criteria may be used to determine whether and audio time line is complete. All time slots in the audio time line need not be filled.

The resultant gallery is then supplied to users in response to requests 614. Thus, users may obtain crowd sourced video mash-ups set to an audio time line.

Those skilled in the art will appreciate that the disclosed techniques provide improved technical results in the field of message combining and sharing. Messages are automatically shared with others that have a common interest, as expressed through a registration process. After the registration process, collections of messages are automatically generated based upon automated evaluation of message content. This automatic process may or may not be executed without a user interface and user input at the server. Thus, an autonomous message combining and sharing system is disclosed that omits the cost of a human operator and is able to operate as fast as a processor operates.

Embodiments of the invention include ephemeral galleries that reduce power consumption and administrative overhead. The ephemeral galleries may be configured for self-execution, for example, by setting message parameters that will establish inclusion in a gallery and setting a transitory gallery period defined by an open time and a close time. The gallery may be associated with a single ephemeral time period (e.g., in the case of a concert) or a recurring ephemeral time period (e.g., in the event of galleries for each basketball game played).

The crowd sourced galleries provide content from many perspectives. An embodiment of the invention establishes innovative video mash-ups set to an audio time line as opposed to a flow of video images. Thus, establishing a novel technique for message combining.

An embodiment of the present invention relates to a computer storage product with a non-transitory computer readable storage medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media, optical media, magneto-optical media and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using JAVA®, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.

The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention. 

The invention claimed is:
 1. A machine, comprising: a processor; and a memory coupled to the processor, the memory storing instructions executed by the processor to perform operations comprising: receiving, from a plurality of computing devices, a plurality of messages, each message comprising at least one message parameter; for each message of the plurality of messages, performing operations comprising: determining whether the at least one message parameter comprises speed indicia indicating a speed of a respective computing device; based on determining that the at least one message parameter comprises speed indicia, evaluating the speed indicia to determine whether a speed of the respective computing device corresponds to a first media collection; and adding the message to the first media collection based on determining that the speed of the respective computing device corresponds to the first media collection.
 2. The machine of claim 1, the operations further comprising: providing the first media collection to a computing device upon request from the computing device.
 3. The machine of claim 1, wherein the speed indicia is based on motion measured by at least one of an accelerometer, gyroscope, or GPS signal associated with the respective computing device.
 4. The machine of claim 1, wherein the speed of the respective computing device corresponds to the first media collection when the speed indicia indicate that the respective computing device is in motion.
 5. The machine of claim 1, the operations further comprising: determining whether the at least one parameter comprises a temperature in a location of a respective computing device; based on determining that the at least one message parameter comprises the temperature in the location of the respective computing device, evaluating the temperature in the location of a respective computing device to determine whether the temperature corresponds to a second media collection; and adding the message to the second media collection based on determining that the temperature in the location of the respective computing device corresponds to the second media collection.
 6. The machine of claim 5, wherein the temperature in the location of the respective computing device corresponds to the second media collection when the temperature exceeds a predefined threshold.
 7. The machine of claim 5, the operations further comprising: providing the second media collection to a computing device upon request from the computing device.
 8. The machine of claim 5, wherein the temperature in the location of the respective computing device is obtained from a thermometer built into the respective computing device or a weather information resource.
 9. The machine of claim 1, wherein the first media collection is available for a specified transitory period of time.
 10. The machine of claim 1, the operations further comprising: sending enrollment prompts to a user associated with a first message of the plurality of messages in response to determining that the speed of the respective computing device corresponds to the first media collection; receiving an enrollment request from the user for the designated gallery; and registering the user with the designated gallery.
 11. A computer-implemented method comprising: receiving, from a plurality of computing devices, a plurality of messages, each message comprising at least one message parameter; for each message of the plurality of messages, performing operations comprising: determining whether the at least one message parameter comprises speed indicia indicating a speed of a respective computing device; based on determining that the at least one message parameter comprises speed indicia, evaluating the speed indicia to determine whether a speed of the respective computing device corresponds to a first media collection; and adding the message to the first media collection based on determining that the speed of the respective computing device corresponds to the first media collection.
 12. The computer-implemented method of claim 11, further comprising: providing the first media collection to a computing device upon request from the computing device.
 13. The computer-implemented method of claim 11, wherein the speed indicia is based on motion measured by at least one of an accelerometer, gyroscope, or GPS signal associated with the respective computing device.
 14. The computer-implemented method of claim 11, wherein the speed of the respective computing device corresponds to the first media collection when the speed indicia indicate that the respective computing device is in motion.
 15. The computer-implemented method of claim 11, further comprising: determining whether the at least one parameter comprises a temperature in a location of a respective computing device; based on determining that the at least one message parameter comprises the temperature in the location of the respective computing device, evaluating the temperature in the location of a respective computing device to determine whether the temperature corresponds to a second media collection; and adding the message to the second media collection based on determining that the temperature in the location of the respective computing device corresponds to the second media collection.
 16. The computer-implemented method of claim 15, wherein the temperature in the location of the respective computing device corresponds to the second media collection when the temperature exceeds a predefined threshold.
 17. The computer-implemented method of claim 15, wherein the temperature in the location of the respective computing device is obtained from a thermometer built into the respective computing device or a weather information resource.
 18. The computer-implemented method of claim 11, wherein the first media collection is available for a specified transitory period of time.
 19. The computer-implemented method of claim 11, further comprising: sending enrollment prompts to a user associated with a first message of the plurality of messages in response to determining that the speed of the respective computing device corresponds to the first media collection; receiving an enrollment request from the user for the designated gallery; and registering the user with the designated gallery.
 20. A non-transitory computer readable storage medium comprising instructions which, when executed by at least one processor, causes the at least one processor to perform operations comprising: receiving, from a plurality of computing devices, a plurality of messages, each message comprising at least one message parameter; for each message of the plurality of messages, performing operations comprising: determining whether the at least one message parameter comprises speed indicia indicating a speed of a respective computing device; based on determining that the at least one message parameter comprises speed indicia, evaluating the speed indicia to determine whether a speed of the respective computing device corresponds to a first media collection; and adding the message to the first media collection based on determining that the speed of the respective computing device corresponds to the first media collection. 